package com.weixing.mall.provider.model.query;

import com.weixing.mall.base.enums.WhetherEnum;
import com.weixing.mall.core.enums.OrderSysTagEnum;
import com.weixing.mall.provider.api.model.enums.OrderTypeEnum;
import com.weixing.mall.provider.model.enums.*;
import lombok.Data;

import java.util.List;

/**
 * 代理统计查询类
 *
 * @author  wx
 * @date  2019/10/17 17:02
 * @since  1.0
 */
@Data
public class AgentStatisticQuery {

    /**
     * 不代理商订单搜索-选中的代理id
     */
    private Long selectedAgentId;
    /**
     * 订单类型
     */
    private OrderTypeEnum orderType;
    /**
     * 订单来源
     */
    private OrderFromEnum orderFrom;
    /**
     * 订单状态
     */
    private OrderStateEnum orderStatus;
    /**
     * 支付状态
     */
    private WhetherEnum isPay;

    /**
     * 所属代理商
     */
    private Long agentId;

    /**
     * 审核状态
     */
    private OrderAuditStateEnum auditStatus;
    /**
     * 下单开始时间
     */
    private String startTime;
    /**
     * 下单结束时间
     */
    private String endTime;
    /**
     * 断货或取消时间开始时间
     */
    private String nosuppllyStartTime;
    /**
     * 断货或取消时间结束时间
     */
    private String nosuppllyEndTime;
    /**
     * 审核时间开始时间
     */
    private String auditStartTime;
    /**
     * 审核时间结束时间
     */
    private String auditEndTime;
    // 前台无需传递的参数，有后台维护
    /**
     * 订单状态组
     *
     * @ignore
     */
    private List<Integer> orderStates;

    /**
     * 审核部门
     *
     * @ignore
     */
    private AuditDeptEnum auditDept;

    /**
     * 需审核人
     *
     * @ignore
     */
    private Long auditor;

    /**
     * 是否是代理认领订单
     *
     * @ignore
     */
    private OrderIsClaimEnum isClaim;


    /**
     * 是否主订单
     *
     * @ignore
     */
    private WhetherEnum isMaster = WhetherEnum.NO;
    /**
     * 订单是否删除
     *
     * @ignore
     */
    private WhetherEnum isDel = WhetherEnum.NO;

    /**
     * 已审核过的代理商id（用于已审核订单查询）
     *
     * @ignore
     */
    private Long hasAuditAgentId;


    /**
     * 代理商id（用于查询个人和团队的订单）
     *
     * @ignore
     */
    private Long agentIdForQueryAll;

    /**
     * 订单商品状态
     *
     * @ignore
     */
    private Integer itemStatus;


    /**
     * 系统标签
     */
    private OrderSysTagEnum sysTag;
}
